﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace CMS_GYM
{
    public partial class frmBangGiaTheHinh : frmTemplete1
    {
        #region Thuộc tính
        private clsCongTyBUS CongTyBus = new clsCongTyBUS();
        #endregion

        public frmBangGiaTheHinh()
        {
            InitializeComponent();
            uct_Save.Save.Click += new EventHandler(btn_Save_Click);
        }

        private void btnThoat_Click(object sender, EventArgs e)
        {
            DongCuaSo();
        }

        #region Phím tắt
        protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
        {
            //Thoát 
            if (keyData == Keys.Escape)
            {
                DongCuaSo();
            }
            else if (keyData == (Keys.Control | Keys.S) && uct_Save.Enabled)
            {
                btn_Save_Click(null, null);
            }
            return base.ProcessCmdKey(ref msg, keyData);
        }

        private void DongCuaSo()
        {
            try
            {
                this.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Lỗi kết nối cơ sở dữ liệu.", "Thông báo lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        #endregion

        private void btn_Save_Click(object sender, EventArgs e)
        {
            try
            {
                string Error=string.Empty;
                if (KiemTra(ref Error))
                {
                    DialogResult result = MessageBox.Show("Bạn có thật sự muốn Cập nhật Bảng giá thể hình không?", "Xác nhận thông tin", MessageBoxButtons.YesNo);
                    if (result == DialogResult.Yes)
                    {
                        CSQLServer.BeginTran();
                        if (CongTyBus.CapNhatGiaTheHinhTheoThang((Double)Decimal.Parse(txtGiaTheoThang.Text)) != -1)
                        {
                            if (CongTyBus.CapNhatGiaTheHinhTheoNgay((Double)Decimal.Parse(txtGiaTheoNgay.Text)) != -1)
                            {
                                if (CongTyBus.CapNhatSoNgayMacDinhTrongMotThang(int.Parse(txtSoNgayTrongThang.Text)) != -1)
                                {
                                    CSQLServer.Commit();
                                    MessageBox.Show("Cập nhật Bảng giá thể hình thành công!", "Thông báo lỗi", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                }
                                else
                                {
                                    CSQLServer.RollBack();
                                    MessageBox.Show("Cập nhật Bảng giá thể hình không thành công. Xin vui lòng thử lại", "Thông báo lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                }
                            }
                            else
                            {
                                CSQLServer.RollBack();
                                MessageBox.Show("Cập nhật Bảng giá thể hình không thành công. Xin vui lòng thử lại", "Thông báo lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            }
                        }
                        else
                        {
                            CSQLServer.RollBack();
                            MessageBox.Show("Cập nhật Bảng giá thể hình không thành công. Xin vui lòng thử lại", "Thông báo lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                }
                else
                {
                    MessageBox.Show("Xin vui lòng nhập: \r\n " + Error, "Thông báo lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            catch (Exception Loi)
            {
                CSQLServer.RollBack();
                MessageBox.Show("Lỗi kết nối cơ sở dữ liệu: " + Loi.Message, "Thông báo lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void frmBangGiaTheHinh_Load(object sender, EventArgs e)
        {
            try
            {
                lblTitle.Text = "BẢNG GIÁ THỂ HÌNH";
                Double GiaTheHinhTheoThang = CongTyBus.GiaTheHinhTheoThang();
                txtGiaTheoThang.Text = clsSupport.CurrencyNumber(GiaTheHinhTheoThang.ToString());
                Double GiaTheHinhTheoNgay = CongTyBus.GiaTheHinhTheoNgay();
                txtGiaTheoNgay.Text = clsSupport.CurrencyNumber(GiaTheHinhTheoNgay.ToString());
                int SoNgayTrongThang = CongTyBus.SoNgayMacDinhTrongMotThang();
                txtSoNgayTrongThang.Text = clsSupport.CurrencyNumber(SoNgayTrongThang.ToString());
            }
            catch (Exception Loi)
            {
                MessageBox.Show("Lỗi kết nối cơ sở dữ liệu: " + Loi.Message, "Thông báo lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            SetPermission();
        }

        private void SetPermission()
        {
            uct_Save.Enabled = clsUser.LayThongTinPhanQuyen("BangGiaTheHinh").ChucNang.Sua;
        }

        private bool KiemTra(ref string Error)
        {
            Decimal GiaTheoThang ;
            Decimal GiaTheoNgay;
            int SoNgayTrongThang;
            if (!Decimal.TryParse(txtGiaTheoThang.Text, out GiaTheoThang) || GiaTheoThang <= 0)
            {
                Error = "Giá tập thể hình theo tháng phải là số và lớn hơn 0. \r\n ";
                return false;
            }
            if (!Decimal.TryParse(txtGiaTheoNgay.Text, out GiaTheoNgay) || GiaTheoNgay <= 0)
            {
                Error += "Giá tập thể hình theo ngày phải là số và lớn hơn 0.  \r\n ";
                return false;
            }
            if (!int.TryParse(txtSoNgayTrongThang.Text, out SoNgayTrongThang) || !(SoNgayTrongThang >0 && SoNgayTrongThang<=31))
            {
                Error += "Số ngày trong một tháng mặc đinh phải là số, lớn hơn 0 và nhỏ hơn hoặc bằng 31.  \r\n ";
                return false;
            }
            return true;
        }

    }
}